package br.edu.ifce.mflj.controller;

import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

import br.edu.ifce.mflj.comunicacao.Pacote;
import br.edu.ifce.mflj.dados.Usuario;
import br.edu.ifce.mflj.observer.ChatListener;
import br.edu.ifce.mflj.observer.UsuarioListener;

public interface IControlador extends Runnable {

	void transmitirPacote( Pacote pacote );

	void addChatListener( ChatListener chatListener );
	void removeChatListener( ChatListener chatListener );

	void addMouseListener( MouseListener mouseListener );
	void removeMouseListener( MouseListener mouseListener );

	void addMouseMotionListener( MouseMotionListener mouseMotionListener );
	void removeMouseMotionListener( MouseMotionListener mouseMotionListener );

	void addUsuarioListener( UsuarioListener usuarioListener );
	void removeUsuarioListener( UsuarioListener usuarioListener );

	void iniciarCanal( Usuario usuario );
	String getIdentificadorCanalDeSaida();
}
